perm filename M11IO.FAI[P11,LCS]1 blob
sn#411141 filedate 1979-04-04 generic text, type T, neo UTF8
00100 TITLE M11IO
00200 INTERNAL PUTEXT,EXTOUT,FINEXT,OSC,OUTP,INITIT
00300 EXTERNAL LM,NT,GENS,ROUT,XIN,LOCG,LFUNC,XIN,.COMM.,INS
00400
00500
00600 CH3←13
00700 CH←12
00800 CH2←11
00900 BLKS←←=1
01000
01100 REGS: BLOCK 20
01200 DIR: BLOCK 4
01300
01400 ;CALL PUTEXT(<FILE>,<EXT>)
01500 PUTEXT: 0 ;USES EXTOUT,FINEXT, CH2
01600 MOVE 0,@0(16)
01700 MOVEM 0,FILNAM
01800 MOVE 0,@1(16)
01900 MOVEM 0,EXTNAM
02000 JSA 16,INTFIL
02100 SETZM DIR+2
02200 SETZM DIR+3
02300 ENTER CH2,DIR
02400 0
02500 JRA 16,2(16)
02600
02700 ;CALL EXTOUT(<ARRAY>,<NO. OF WORDS>)
02800
02900 EXTOUT: 0
03000 HRRZ 0,0(16)
03100 SUBI 0,1
03200 MOVEM 0,COM
03300 MOVN 0,@1(16)
03400 HRLM 0,COM
03500 OUTPUT CH2,COM
03600 STATZ CH2,740000
03700 0
03800 JRA 16,2(16)
03900
04000
04100 INTFIL: 0 ;INITS DSK
04200 MOVEI REGS
04300 BLT REGS+3
04400 INIT CH2,17
04500 SIXBIT/DSK/
04600 0
04700 0
04800 INTF4: MOVE 0,FILNAM#
04900 MOVEM 0,FN#
05000 MOVE 1,[POINT 7,FN]
05100 INTF3: MOVE 2,[POINT 6,DIR]
05200 SETZM DIR
05300 MOVEI 3,5
05400 INTF1: ILDB 0,1
05500 CAIN 0," "
05600 JRST INTF2
05700 SUBI 0,40
05800 IDPB 0,2
05900 SOJG 3,INTF1
06000 INTF2: HRLZI REGS
06100 BLT 3
06200 MOVE 0,EXTNAM#
06300 MOVEM 0,EX#
06400 MOVE 1,[POINT 7,EX]
06500 EXTF3: MOVE 2,[POINT 6,DIR+1]
06600 SETZM DIR+1
06700 MOVEI 3,5
06800 EXTF1: ILDB 0,1
06900 CAIN 0," "
07000 JRST EXTF2
07100 SUBI 0,40
07200 IDPB 0,2
07300 SOJG 3,EXTF1
07400 EXTF2: HRLZI REGS
07500 BLT 3
07600 JRA 16,0(16)
07700
07800
07900 COM: OCT 0,0
08000 BLKNUM: 0
08100
08200 ;CALL FINEXT
08300 FINEXT: 0
08400 CLOSE CH2,0
08500 STATZ CH2,740000
08600 0
08700 RELEASE CH2,0
08800 JRA 16,0(16)
08900 OSC: 0 ;OSC UNIT GENERATOR
09000 MOVE 2,LM+3 ;L4
09100 SKIPE LM+=13 ; IF(M4.EQ.0)L4=LOCG(INT(RNT(L4)))
09200 JRST OSC1
09300 KIFIX 2,NT-1(2) ;RNT(L4)
09400 MOVE 2,LOCG-1(2) ;L4
09500 OSC1: MOVE 1,LM+4 ;L5
09600 MOVE 15,NT-1(1) ;SUM
09700 MOVE 12,LM+=10 ;M1
09800 MOVE 11,LM+=11 ;M2
09900 MOVE 14,XIN ;AMP
10000 MOVE 10,XIN+1 ;FREQ
10100 OSC2: SETZ 4, ;J3
10200 OSC3: KIFIX 5,15
10300 ADD 5,2 ;+L4 POINTER TO START OF THIS FUNC.
10400 MOVE 13,GENS-1(5) ;F
10500 JUMPG 11,O286
10600 FADR 15,10 ;SUM
10700 JRST O290
10800 O286: MOVE 6,4
10900 ADD 6,LM+1 ;J4
11000 FADR 15,ROUT-1(6) ;SUM
11100 O290: CAML 15,LFUNC+1 ;XNFUN
11200 JRST O287
11300 ; JUMPL 15,O289
11400 O288: MOVE 6,4
11500 ADD 6,LM+2 ;J5
11600 JUMPG 12,O292
11700 MOVE 14 ;AMP
11800 JRST O293
11900 O287: FSBR 15,LFUNC+1
12000 JRST O288
12100 ;;O289: FADR 15,LFUNC+=1
12200 ;; JRST O288
12300 O292: MOVE 7,4
12400 ADD 7,LM
12500 MOVE ROUT-1(7)
12600 O293: FMPR 13
12700 MOVEM ROUT-1(6)
12800 AOJ 4,
12900 CAMG 4,LM+=20 ;NSAMX
13000 JRST OSC3
13100 MOVEM 15,NT-1(1)
13200 JRA 16,(16)
13300
13400 OUTP: 0
13500 MOVE 2,LM+1
13600 MOVE 4,LM
13700 MOVE 1,2
13800 ADD 1,LM+=20
13900 OU1: MOVE 3,ROUT-1(4)
14000 FADRM 3,ROUT-1(2)
14100 AOJ 2,
14200 AOJ 4,
14300 CAMG 2,1
14400 JRST OU1
14500 JRA 16,(16)
14600
14700 INITIT: 0 ;CALL INITIT(J3) COMMON /LM/L(10),M(10),NSAMX
14800 MOVE 1,.COMM.+5 ;I6 COMMON I(1) /P/P(1) /GENS/GENS(1) /LFUNC/LFUNC,XNFUN
14900 ADDI 1,2 ;N1 C COMMON INITIALIZATION OF GENERATORS
15000 MOVE 2,INS-2(1) ; N1=I6+2
15100 SOJ 2, ↔ MOVE 5,[=1000] ; N2=INS(N1-1)-1
15200 MOVE 6,1
15300 I204: MOVE 3,6 ; DO 204 J1=N1,N2
15400 AOJ 3, ↔ SUB 3,1 ; J2=J1-N1+1
15500 SKIPL 4,INS-1(6) ↔ JRST I201 ;IF(INS(J1).GE.0)GO TO 201
15600 MOVNM 4,LM-1(3) ; 200 L(J2)=-INS(J1)
15700 MOVEI 0,1 ↔ MOVEM LM+=9(3) ; M(J2)=1
15800 JRST J204 ; GO TO 204
15900 I201: SETZM LM+=9(3) ; 201 M(J2)=0
16000 CAMG 5,INS-1(6) ; IF(INS(J1)-26262.GT.0)GO TO 203
16100 JRST I203 ;C***** WHAT DOES THE BIG NUMBER DO?????
16200 ;C*** IT SEEMS TO BE JUST TO MAKE A FLAG. NOW CHANGED TO FIT INTO 16BITS.
16300 ADD 4,.COMM.+2 ↔ SOJ 4, ; 202 L(J2)=INS(J1)+I3-1
16400 ;;; SKIPA ; GO TO 204
16500 ;;;I203: SUB 4,5 ;203 L(J2)=INS(J1)-26262
16600 I203: MOVEM 4,LM-1(3)
16700 J204: CAMGE 6,2 ; 204 CONTINUE
16800 AOJA 6,I204
16900 MOVE 1,INS-3(1) ; N3=INS(N1-2)
17000 SUBI 1,=100 ↔ MOVEM 1,@(16) ↔ JRA 16,1(16) ; J3= N3 -100
17100 END